package enten;

import special.FliegtGarNicht;
import special.StummesQuacken;
import interfaces.FlugVerhalten;
import interfaces.Quackverhalten;
import interfaces.Schwimmen;

public abstract class Ente {
	
	public FlugVerhalten myFlugverhalten;
	public Quackverhalten myQuackverhalten;
	public Schwimmen mySchwimmverhalten;
	
	/**
	 * Konstruktor
	 */
	public Ente(FlugVerhalten flug,Quackverhalten quack,Schwimmen schwimm){
		
		myFlugverhalten = flug;
		myQuackverhalten = quack;
		mySchwimmverhalten = schwimm;
		
	}
	
	/**
	 * Schwimmverhalten
	 */
	public void tuSchwimmen(){
		
		this.mySchwimmverhalten.schwimmen();
	}
	
	/**
	 * Name anzeigen
	 */
	public void anzeigen(){
		
		this.anzeigen();
		
	}
	
	/**
	 * Flugverhalten
	 */
	public void tuFliegen(){
		
		this.myFlugverhalten.fliegen();
	}
	
	
	/**
	 * Quackverhalten
	 */
	public void tuQuacken(){
		
		this.myQuackverhalten.quacken();
		
		
	}
	public void tuAll(){
		
		this.anzeigen();
		this.tuQuacken();
		this.tuFliegen();
		this.tuSchwimmen();
		
	
	}
	

}
